// 引用express框架
const express = require('express')
const path = require('path')
// 创建网站服务器
const app = express()

// 导入并配置 cors 中间件，规避同源策略
const cors = require('cors')
app.use(cors())

const bodyParser = require('body-parser')
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json({ limit: '50mb' }))

// 一定要在路由之前，封装 res.cc 函数
// 全局中间件
app.use((req, res, next) => {
  // status 默认值为 400，表示失败的情况
  // err 的值，可能是一个错误对象，也可能是一个错误的描述字符串
  res.cc = function (data, status = 400) {
    res.send({
      status,
      data
    })
  }
  next()
})

// 在express添加中间件，设置静态资源路径为public
app.use(express.static(path.join(__dirname, 'public')))

// 导入路由模块
const userRouter = require('./router/user')
app.use('/api', userRouter)

const adminRouter = require('./router/admin')
app.use('/api', adminRouter)

const questionRouter = require('./router/question')
app.use('/api', questionRouter)

const commentRouter = require('./router/comment')
app.use('/api', commentRouter)

// 启动服务器监听8000端口
app.listen(8000, function () {
  console.log('api server running at http://192.168.1.222:8000')
})